package de.uv.kilter.core;


public interface IConnection {

	public String getName();
	public void setName(String name);
	
	public long getId();
	public void setId(long id);
	
	public int getMaximumCapacity();
	public void setMaximumCapacity(int maximumCapacity);
	
	public int getMinimumCapacity();
	public void setMinimumCapacity(int minimumCapacity);
	
	public int getLoad();
	public void setLoad(int load);
	public void addLoad(int load);
	
	public int getCost();
	public void setCost(int cost);
	
	public INode getSourceNode();
	public void setSourceNode(INode sourceNode);
	
	public INode getTargetNode();
	public void setTargetNode(INode targetNode);
	
	/**
	 * This method is called, to compute the connection's state.
	 */
	public void calculateState();
	
	public int getDecreasedCost();
	public void setDecreasedCost(int decreasedCost);

	public int getState();
	public void setState(int state);
	
	/**
	 * This method is called, to compute the connection's decreased costs.
	 */
	public void calculateDecreasedCosts();
}
